#include "src/net/Poller_v2.h"

#include "src/net/EventLoop.h"          // For Poller::assertInLoopThread
#include "src/net/poller/EPollPoller.h" // Include the concrete Poller implementation

using namespace sola::net;

// Provide the definition for the static factory method
Poller* Poller::newDefaultPoller(EventLoop* loop) {
    // On Linux, the default poller is EPollPoller.
    // If you were to support other systems, you could use #ifdef here.
    return new EPollPoller(loop);
}

// Provide the definition for the assertion helper
void Poller::assertInLoopThread() const {
    ownerLoop_->assertInLoopThread();
}